package com.hc.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 用户实名认证：识别用户上传的身份证信息，自动填充表格
 *
 * @author 梁云亮
 */
@ApiModel(value = "Domain:UserIdentification")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "tb_user_identification")
public class UserIdentification implements Serializable {
    private static final long serialVersionUID = 3943273936005292803L;
    /**
     * 身份证号
     */
    @TableId(value = "id")
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 真实姓名
     */
    @TableField(value = "name")
    @ApiModelProperty(value = "真实姓名")
    private String name;

    /**
     * 性别
     */
    @TableField(value = "gender")
    @ApiModelProperty(value = "性别")
    private Boolean gender;

    /**
     * 民族
     */
    @TableField(value = "nation")
    @ApiModelProperty(value = "民族")
    private String nation;

    /**
     * 生日
     */
    @TableField(value = "birth")
    @ApiModelProperty(value = "生日")
    private LocalDate birth;

    /**
     * 城区编号
     */
    @TableField(value = "town_id")
    @ApiModelProperty(value = "城区编号")
    private Integer townId;


    /**
     * 详细地址
     */
    @TableField(value = "addr")
    @ApiModelProperty(value = "详细地址")
    private String addr;

    /**
     * 签发机关
     */
    @TableField(value = "authority")
    @ApiModelProperty(value = "签发机关")
    private String authority;

    /**
     * 身份证有效期开始时间
     */
    @TableField(value = "start_date")
    @ApiModelProperty(value = "身份证有效期开始时间")
    private LocalDate startDate;

    /**
     * 身份证有效期结束时间
     */
    @TableField(value = "end_date")
    @ApiModelProperty(value = "身份证有效期结束时间")
    private LocalDate endDate;

    /**
     * 正面身份证照
     */
    @TableField(value = "img1")
    @ApiModelProperty(value = "正面身份证照")
    private String img1;

    /**
     * 背面身份证照
     */
    @TableField(value = "img2")
    @ApiModelProperty(value = "背面身份证照")
    private String img2;

    /**
     * 状态
     */
    @TableField(value = "status")
    @ApiModelProperty(value = "状态")
    private Integer status;

    /**
     * 用户编号
     */
    @TableField(value = "user_id")
    @ApiModelProperty(value = "用户编号")
    private Integer userId;

    /**
     * 注册时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty(value = "注册时间")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField(value = "update_time")
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;

}
